Ссылки по теме

*   [Откат пакетов](/index.php/%D0%9E%D1%82%D0%BA%D0%B0%D1%82_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Откат пакетов")
*   [Ускорение работы pacman](/index.php/%D0%A3%D1%81%D0%BA%D0%BE%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_pacman "Ускорение работы pacman")
*   [Графические оболочки для pacman](/index.php/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BE%D0%B1%D0%BE%D0%BB%D0%BE%D1%87%D0%BA%D0%B8_%D0%B4%D0%BB%D1%8F_pacman "Графические оболочки для pacman")
*   [pacman Rosetta](/index.php/Pacman_Rosetta "Pacman Rosetta")
*   [pacman/Советы и приёмы](/index.php/Pacman/%D0%A1%D0%BE%D0%B2%D0%B5%D1%82%D1%8B_%D0%B8_%D0%BF%D1%80%D0%B8%D1%91%D0%BC%D1%8B "Pacman/Советы и приёмы")
*   [pacman package signing](/index.php/Pacman_package_signing "Pacman package signing")
*   [ЧаВо#Управление пакетами](/index.php/%D0%A7%D0%B0%D0%92%D0%BE#.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0.D0.BC.D0.B8 "ЧаВо")
*   [pacman-key (Русский)](/index.php/Pacman-key_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman-key (Русский)")
*   [Файлы Pacnew и Pacsave](/index.php/%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B_Pacnew_%D0%B8_Pacsave "Файлы Pacnew и Pacsave")
*   [Список приложений/Утилиты#Управление пакетами](/index.php/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9/%D0%A3%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D1%8B#.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0.D0.BC.D0.B8 "Список приложений/Утилиты")
*   [Arch Build System (Русский)](/index.php/Arch_Build_System_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch Build System (Русский)")
*   [Официальные репозитории](/index.php/%D0%9E%D1%84%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8 "Официальные репозитории")
*   [Arch User Repository (Русский)](/index.php/Arch_User_Repository_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch User Repository (Русский)")

[Система управления пакетами](https://en.wikipedia.org/wiki/ru:%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%D0%BC%D0%B8 или же собраны самостоятельно.

*pacman* поддерживает систему в актуальном состоянии, синхронизируя пакеты с сервером. Такая клиент-серверная модель позволяет пользователю скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.

*pacman* написан на языке C и использует формат пакетов *.pkg.tar.xz*.

**Совет:** Официальный пакет [pacman](https://www.archlinux.org/packages/?name=pacman) включает в себя много дополнительных полезных инструментов, таких как **makepkg**, **pactree**, **vercmp** и [checkupdates](#.D0.A7.D0.B0.D1.81.D1.82.D0.B8.D1.87.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BD.D0.B5_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D1.8E.D1.82.D1.81.D1.8F). Выполните `pacman -Ql pacman | grep bin`, чтобы увидеть полный список.

## Contents

*   [1 Настройка](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
    *   [1.1 Основные параметры](#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D0.BF.D0.B0.D1.80.D0.B0.D0.BC.D0.B5.D1.82.D1.80.D1.8B)
        *   [1.1.1 Пропуск обновления пакетов](#.D0.9F.D1.80.D0.BE.D0.BF.D1.83.D1.81.D0.BA_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
        *   [1.1.2 Пропуск обновления группы пакетов](#.D0.9F.D1.80.D0.BE.D0.BF.D1.83.D1.81.D0.BA_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
        *   [1.1.3 Игнорирование установки файлов в систему](#.D0.98.D0.B3.D0.BD.D0.BE.D1.80.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B8_.D1.84.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2_.D0.B2_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83)
    *   [1.2 Репозитории](#.D0.A0.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B8)
    *   [1.3 Безопасность пакетов](#.D0.91.D0.B5.D0.B7.D0.BE.D0.BF.D0.B0.D1.81.D0.BD.D0.BE.D1.81.D1.82.D1.8C_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
*   [2 Использование](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5)
    *   [2.1 Установка пакетов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
        *   [2.1.1 Установка определенных пакетов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
        *   [2.1.2 Установка группы пакетов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B3.D1.80.D1.83.D0.BF.D0.BF.D1.8B_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
    *   [2.2 Удаление пакетов](#.D0.A3.D0.B4.D0.B0.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
    *   [2.3 Обновление пакетов](#.D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
    *   [2.4 Запросы к базам данных пакетов](#.D0.97.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D1.8B_.D0.BA_.D0.B1.D0.B0.D0.B7.D0.B0.D0.BC_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
    *   [2.5 Очистка кэша пакетов](#.D0.9E.D1.87.D0.B8.D1.81.D1.82.D0.BA.D0.B0_.D0.BA.D1.8D.D1.88.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
    *   [2.6 Дополнительные команды](#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D1.8B)
    *   [2.7 Частичные обновления не поддерживаются](#.D0.A7.D0.B0.D1.81.D1.82.D0.B8.D1.87.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BD.D0.B5_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D1.8E.D1.82.D1.81.D1.8F)
    *   [2.8 Общие рекомендации](#.D0.9E.D0.B1.D1.89.D0.B8.D0.B5_.D1.80.D0.B5.D0.BA.D0.BE.D0.BC.D0.B5.D0.BD.D0.B4.D0.B0.D1.86.D0.B8.D0.B8)
*   [3 Решение проблем](#.D0.A0.D0.B5.D1.88.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC)
    *   [3.1 Обновления пакетов сломали мою систему](#.D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2_.D1.81.D0.BB.D0.BE.D0.BC.D0.B0.D0.BB.D0.B8_.D0.BC.D0.BE.D1.8E_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83)
    *   [3.2 Для пакета доступно обновление, но pacman сообщает, что система в актуальном состоянии](#.D0.94.D0.BB.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0_.D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF.D0.BD.D0.BE_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5.2C_.D0.BD.D0.BE_pacman_.D1.81.D0.BE.D0.BE.D0.B1.D1.89.D0.B0.D0.B5.D1.82.2C_.D1.87.D1.82.D0.BE_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D0.B0_.D0.B2_.D0.B0.D0.BA.D1.82.D1.83.D0.B0.D0.BB.D1.8C.D0.BD.D0.BE.D0.BC_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D0.B8)
    *   [3.3 Ошибка "Failed to commit transaction (conflicting files)"](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Failed_to_commit_transaction_.28conflicting_files.29.22)
    *   [3.4 Ошибка "Failed to commit transaction (invalid or corrupted package)"](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Failed_to_commit_transaction_.28invalid_or_corrupted_package.29.22)
    *   [3.5 Ошибка "Failed to init transaction (unable to lock database)"](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Failed_to_init_transaction_.28unable_to_lock_database.29.22)
    *   [3.6 Ошибка "Not found in sync db" при установке пакета](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Not_found_in_sync_db.22_.D0.BF.D1.80.D0.B8_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0)
    *   [3.7 Ошибка "Target not found" при установке пакета](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Target_not_found.22_.D0.BF.D1.80.D0.B8_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0)
    *   [3.8 Один и тот же пакет обновляется повторно](#.D0.9E.D0.B4.D0.B8.D0.BD_.D0.B8_.D1.82.D0.BE.D1.82_.D0.B6.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D1.8F.D0.B5.D1.82.D1.81.D1.8F_.D0.BF.D0.BE.D0.B2.D1.82.D0.BE.D1.80.D0.BD.D0.BE)
    *   [3.9 pacman падает при обновлении](#pacman_.D0.BF.D0.B0.D0.B4.D0.B0.D0.B5.D1.82_.D0.BF.D1.80.D0.B8_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B8)
    *   [3.10 Поиск пакета, содержащего требуемый файл](#.D0.9F.D0.BE.D0.B8.D1.81.D0.BA_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0.2C_.D1.81.D0.BE.D0.B4.D0.B5.D1.80.D0.B6.D0.B0.D1.89.D0.B5.D0.B3.D0.BE_.D1.82.D1.80.D0.B5.D0.B1.D1.83.D0.B5.D0.BC.D1.8B.D0.B9_.D1.84.D0.B0.D0.B9.D0.BB)
    *   [3.11 pacman поврежден, и восстановить его не получается](#pacman_.D0.BF.D0.BE.D0.B2.D1.80.D0.B5.D0.B6.D0.B4.D0.B5.D0.BD.2C_.D0.B8_.D0.B2.D0.BE.D1.81.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.B8.D1.82.D1.8C_.D0.B5.D0.B3.D0.BE_.D0.BD.D0.B5_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B0.D0.B5.D1.82.D1.81.D1.8F)
    *   [3.12 Ошибка "Unable to find root device" после перезагрузки](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Unable_to_find_root_device.22_.D0.BF.D0.BE.D1.81.D0.BB.D0.B5_.D0.BF.D0.B5.D1.80.D0.B5.D0.B7.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.BA.D0.B8)
    *   [3.13 Signature from "User <email@gmail.com>" is unknown trust, installation failed](#Signature_from_.22User_.3Cemail.40gmail.com.3E.22_is_unknown_trust.2C_installation_failed)
    *   [3.14 Signature from "User <email@archlinux.org>" is invalid, installation failed](#Signature_from_.22User_.3Cemail.40archlinux.org.3E.22_is_invalid.2C_installation_failed)
    *   [3.15 Ошибка "Warning: current locale is invalid; using default "C" locale"](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Warning:_current_locale_is_invalid.3B_using_default_.22C.22_locale.22)
    *   [3.16 рacman не использует настройки прокси](#.D1.80acman_.D0.BD.D0.B5_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B5.D1.82_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_.D0.BF.D1.80.D0.BE.D0.BA.D1.81.D0.B8)
    *   [3.17 Как я могу переустановить все пакеты, сохраняя при этом информацию о том, какие пакеты были явно установлены, а какие установлены в качестве зависимостей?](#.D0.9A.D0.B0.D0.BA_.D1.8F_.D0.BC.D0.BE.D0.B3.D1.83_.D0.BF.D0.B5.D1.80.D0.B5.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.B8.D1.82.D1.8C_.D0.B2.D1.81.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B.2C_.D1.81.D0.BE.D1.85.D1.80.D0.B0.D0.BD.D1.8F.D1.8F_.D0.BF.D1.80.D0.B8_.D1.8D.D1.82.D0.BE.D0.BC_.D0.B8.D0.BD.D1.84.D0.BE.D1.80.D0.BC.D0.B0.D1.86.D0.B8.D1.8E_.D0.BE_.D1.82.D0.BE.D0.BC.2C_.D0.BA.D0.B0.D0.BA.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.B1.D1.8B.D0.BB.D0.B8_.D1.8F.D0.B2.D0.BD.D0.BE_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D1.8B.2C_.D0.B0_.D0.BA.D0.B0.D0.BA.D0.B8.D0.B5_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D1.8B_.D0.B2_.D0.BA.D0.B0.D1.87.D0.B5.D1.81.D1.82.D0.B2.D0.B5_.D0.B7.D0.B0.D0.B2.D0.B8.D1.81.D0.B8.D0.BC.D0.BE.D1.81.D1.82.D0.B5.D0.B9.3F)
    *   [3.18 Ошибка "Cannot open shared object file"](#.D0.9E.D1.88.D0.B8.D0.B1.D0.BA.D0.B0_.22Cannot_open_shared_object_file.22)
    *   [3.19 Проблемы с загрузкой пакетов](#.D0.9F.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D1.8B_.D1.81_.D0.B7.D0.B0.D0.B3.D1.80.D1.83.D0.B7.D0.BA.D0.BE.D0.B9_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2)
*   [4 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5)

## Настройка

Основные настройки *pacman* находятся в `/etc/pacman.conf`. В этом файле пользователь может указать все нужные ему настройки программы. Подробнее о конфигурировании можно прочесть в [man pacman.conf](https://www.archlinux.org/pacman/pacman.conf.5.html).

### Основные параметры

Основные параметры находятся в секции `[options]`. Для получения дополнительной информации о параметрах прочтите [страницу справочного руководства](/index.php/Man_page_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Man page (Русский)") или изучите установленный по умолчанию файл `pacman.conf`.

#### Пропуск обновления пакетов

Для пропуска какого-либо пакета во время [обновления](#.D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) системы добавьте его название в строку:

```
IgnorePkg=linux

```

В случае, если необходимо в строке `IgnorePkg` перечислить несколько пакетов, разделяйте их имена пробелами или используйте несколько строк `IgnorePkg`. Также можно использовать глобальные шаблоны (glob patterns). Если вы хотите пропустить обновление каких-либо пакетов единожды, можно также использовать опцию `--ignore` в командной строке, разделяя имена пакетов запятыми.

У вас по-прежнему будет возможность в будущем обновить проигнорированные пакеты с использованием `pacman -S`: *pacman* напомнит вам, что есть пакеты, включенные в секцию `IgnorePkg`.

#### Пропуск обновления группы пакетов

Как и в случае с отдельными пакетами, вы можете запрещать обновления групп пакетов, например так:

```
IgnoreGroup=gnome

```

#### Игнорирование установки файлов в систему

Для пропуска каталогов, в которые должны будут устанавливаться файлы, перечислите эти каталоги в `NoExtract`. Например, для игнорирования установки юнитов [systemd](/index.php/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Systemd (Русский)"):

```
NoExtract=usr/lib/systemd/system/*

```

### Репозитории

В этом разделе файла `pacman.conf` указываются [репозитории](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Official repositories (Русский)"), которые будут использоваться. Их можно указать прямо здесь или подключить из другого файла (например `/etc/pacman.d/mirrorlist`). Таким образом достаточно поддерживать в актуальном состоянии только один список. Для получения информации по настройке зеркал смотрите статью [Зеркала](/index.php/%D0%97%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%B0 "Зеркала").

 `/etc/pacman.conf` 
```
#[testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

#[community-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# Если в вашей системе x86_64 необходимо запускать 32-битные программы,
# раскомментируйте нужные репозитории multilib.

#[multilib-testing]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

#[multilib]
#SigLevel = PackageRequired
#Include = /etc/pacman.d/mirrorlist

# Пример использования пользовательского репозитория. Обратитесь к справочной странице (man) pacman для
# получения дополнительной информации по созданию собственных репозиториев.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
```

**Важно:** Будьте осторожны при использовании репозитория *testing*. Пакеты в нем активно разрабатываются и обновляются — это может сказаться на стабильности и работоспособности других пакетов или системы в целом. Людям, использующим репозиторий *testing*, для своевременного получения информации рекомендуется подписаться на [почтовую рассылку arch-dev-public](https://mailman.archlinux.org/mailman/listinfo/arch-dev-public).

### Безопасность пакетов

В *pacman* 4 реализован дополнительный уровень безопасности устанавливаемых пакетов — подписи. Конфигурация по умолчанию, `SigLevel = Required DatabaseOptional`, включает проверку подписей для всех пакетов на глобальном уровне. Это поведение может быть изменено для каждого конкретного репозитория в строках `SigLevel`, как показано выше. Для получения дополнительной информации о подписях пакетов и их проверке посмотрите статью [pacman-key (Русский)](/index.php/Pacman-key_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman-key (Русский)").

## Использование

В этом разделе приведена небольшая подборка доступных возможностей *pacman*. Чтобы узнать больше, изучите [man pacman](https://archlinux.org/pacman/pacman.8.html).

### Установка пакетов

**Примечание:** Довольно часто пакеты имеют [дополнительные зависимости](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#optdepends "PKGBUILD (Русский)"), которые не являются обязательными, но предоставляют дополнительную функциональность. Если вы пропустите эту информацию при установке пакета, вы можете посмотреть ее потом, используя [#Запросы к базам данных пакетов](#.D0.97.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D1.8B_.D0.BA_.D0.B1.D0.B0.D0.B7.D0.B0.D0.BC_.D0.B4.D0.B0.D0.BD.D0.BD.D1.8B.D1.85_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2).

#### Установка определенных пакетов

Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:

```
# pacman -S *имя_пакета1* *имя_пакета2* ...

```

Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите раздел [Операции и синтаксис Bash](/index.php/Pacman_tips#Operations_and_Bash_syntax "Pacman tips") и [эту ветку форума](https://bbs.archlinux.org/viewtopic.php?id=7179)):

```
# pacman -S $(pacman -Ssq *регулярное_выражение*)

```

Если пакет имеет несколько версий в разных репозиториях (например, в *extra* и *testing*), можно указать, откуда именно следует установить пакет:

```
# pacman -S extra/*имя_пакета*

```

#### Установка группы пакетов

Некоторые пакеты объединены в группы пакетов, и они могут быть установлены одновременно. Например, при выполнении команды:

```
# pacman -S gnome

```

вам будет предложено выбрать пакеты из группы [gnome](https://www.archlinux.org/groups/x86_64/gnome/), которые вы хотели бы установить.

Некоторые группы содержат большое количество пакетов, и среди них могут быть всего несколько нужных или ненужных вам. Вместо того, чтобы вводить все необходимые вам номера, иногда удобнее выбрать или исключить отдельные числа или диапазоны чисел при помощи приведенного ниже синтаксиса:

```
Enter a selection (default=all): 1-10 15

```

— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;

```
Enter a selection (default=all): ^5-8 ^2

```

— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.

Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:

```
# pacman -Sg gnome

```

Перечень доступных групп пакетов можно изучить, посетив [https://www.archlinux.org/groups/](https://www.archlinux.org/groups/).

**Примечание:** Если пакет в списке уже установлен, он будет переустановлен даже если была установлена последняя версия. Это поведение можно изменить опцией `--needed`.

**Важно:** Перед установкой пакетов **не** обновляйте список пакетов без последующего [обновления](#.D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) системы (например, `pacman -Sy *имя_пакета*`), иначе могут возникнуть проблемы с зависимостями. Смотрите раздел [#Частичные обновления не поддерживаются](#.D0.A7.D0.B0.D1.81.D1.82.D0.B8.D1.87.D0.BD.D1.8B.D0.B5_.D0.BE.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BD.D0.B5_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D1.8E.D1.82.D1.81.D1.8F) и ветку форума [https://bbs.archlinux.org/viewtopic.php?id=89328](https://bbs.archlinux.org/viewtopic.php?id=89328).

### Удаление пакетов

Для удаления пакета без удаления установленных зависимостей:

```
# pacman -R *имя_пакета*

```

Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:

```
# pacman -Rs *имя_пакета*

```

Для удаления пакета, его зависимостей и всех пакетов, зависящих от целевого пакета:

**Важно:** Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.

```
# pacman -Rsc *имя_пакета*

```

Для удаления пакета, который требуется другому пакету, без удаления зависимого пакета:

```
# pacman -Rdd *имя_пакета*

```

*pacman* создает резервные копии конфигурационных файлов удаляемых приложений и добавляет к ним расширение *.pacsave*. Если вы хотите удалить и эти файлы, используйте ключ `-n`:

```
# pacman -Rn *имя_пакета*

```

**Примечание:** *pacman* не удаляет конфигурационных файлов, созданных самими приложениями (например, скрытые файлы (имя которых начинается с точки) в вашем домашнем каталоге).

### Обновление пакетов

*pacman* может обновить все пакеты системы одной командой. Это может занять длительное время в зависимости от того, насколько свежие пакеты установлены в вашей системе. Следующая команда выполнит одновременно синхронизацию локальной базы данных репозиториев *и* обновление вашей системы (не будут обновлены 'локальные' пакеты, отсутствующие в настроенных репозиториях):

```
# pacman -Syu

```

**Важно:** В связи с тем, что Arch является постоянно обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у вас будет достаточно свободного времени и вы будете готовы к решению возможных проблем.

*pacman* является мощным инструментом по управлению пакетами, но он не решает и не пытается решать абсолютно все возможные проблемы. Если вас это смущает, прочтите статью [Философия Arch](/index.php/%D0%A4%D0%B8%D0%BB%D0%BE%D1%81%D0%BE%D1%84%D0%B8%D1%8F_Arch "Философия Arch"). Пользователь должен быть внимателен и сам заниматься обеспечением работоспособности своей системы. **При выполнении обновления системы крайне важно читать и осмысливать всю информацию, которую выводит *pacman*.** Если вы изменяли конфигурационный файл, то при обновлении, во избежание перезаписи, будет создан новый конфигурационный файл *.pacnew*. *pacman* предложит объединить его с вашим конфигурационным файлом. Выполнять объединение файлов придется вручную и, лучше всего, сразу после обновления. Для получения дополнительной информации обратитесь к статье [Файлы Pacnew и Pacsave](/index.php/%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B_Pacnew_%D0%B8_Pacsave "Файлы Pacnew и Pacsave").

**Совет:** Не забывайте, что вывод pacman сохраняется в `/var/log/pacman.log`.

Перед обновлением желательно посетить [главную страницу Arch Linux](https://www.archlinux.org/) и [главную страницу русскоязычного сообщества Arch Linux](http://www.archlinux.org.ru/) и проверить там последние новости (также вы можете подписаться на [RSS-ленту новостей](http://archlinux.org.ru/news/feed/), [почтовую рассылку](https://mailman.archlinux.org/mailman/listinfo/arch-announce/) или [@archlinux](https://twitter.com/archlinux) в Twitter): для обновлений, требующих дополнительного вмешательства (если выполнения указанных *pacman'*ом действий не достаточно), будут добавлены соответствующие новости.

Если решить проблемы согласно инструкциям не удается, поищите подобные сообщения на форуме. Вполне возможно, что другие пользователи, столкнувшиеся с подобными проблемами, уже предоставили варианты по их решению.

### Запросы к базам данных пакетов

*pacman* с помощью флага `-Q` может искать пакеты в локальной базе данных:

```
$ pacman -Q --help

```

а с помощью флага `-S` — в базе данных, синхронизированной с репозиториями:

```
$ pacman -S --help

```

*pacman* умеет искать пакеты в базе данных как по названиям, так и по описаниям:

```
$ pacman -Ss *условие1* *условие2* ...

```

Для поиска среди установленных пакетов:

```
$ pacman -Qs *условие1* *условие2* ...

```

Для отображения подробной информации об указанном пакете:

```
$ pacman -Si *имя_пакета*

```

и для установленных пакетов:

```
$ pacman -Qi *имя_пакета*

```

Использование сразу двух флагов `-i` позволит просмотреть список резервных копий файлов и список измененных файлов:

```
$ pacman -Qii *имя_пакета*

```

Для получения списка файлов установленного пакета:

```
$ pacman -Ql *имя_пакета*

```

Для неустановленных пакетов используйте [pkgfile](/index.php/Pkgfile_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pkgfile (Русский)").

Чтобы проверить наличие файлов, установленных пакетом:

```
$ pacman -Qk *имя_пакета*

```

Использование сразу двух флагов `k` выполнит более тщательную проверку.

Чтобы узнать, какому пакету принадлежит нужный файл:

```
$ pacman -Qo */путь/к/файлу/имя_файла*

```

Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или "осиротевшие" пакеты):

```
$ pacman -Qdt

```

Для отображения пакетов, которые были установлены явно и от которых не зависят другие пакеты:

```
$ pacman -Qet

```

Для отображения зависимостей в виде дерева:

```
$ pactree *имя_пакета*

```

Для получения списка пакетов, которые зависят от конкретного *установленного* пакета, можно использовать утилиту *whoneeds* из состава пакета [pkgtools](/index.php/Pkgtools "Pkgtools"):

```
$ whoneeds *имя_пакета*

```

или *pactree* c флагом `r`:

```
$ pactree -r *имя_пакета*

```

Для просмотра других команд обратитесь к статье [pacman/Советы и приёмы](/index.php/Pacman/%D0%A1%D0%BE%D0%B2%D0%B5%D1%82%D1%8B_%D0%B8_%D0%BF%D1%80%D0%B8%D1%91%D0%BC%D1%8B "Pacman/Советы и приёмы").

### Очистка кэша пакетов

*pacman* сохраняет скачиваемые пакеты в каталоге (`/var/cache/pacman/pkg/`) и не удаляет их файлы автоматически, поэтому следует время от времени самостоятельно чистить этот каталог, чтобы предотвратить его разрастание.

Есть встроенная опция для удаления из кэша всех пакетов, не установленных на данный момент:

```
# pacman -Sc

```

**Важно:**

*   Делайте это только в том случае, если у вас есть определенная уверенность, что установленные пакеты стабильны и вам не потребуется [откат версии](/index.php/Downgrading_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Downgrading packages (Русский)"), поскольку данная команда удалит все старые версии из каталога кэша, оставив только те, которые установлены в системе на данный момент. Сохранение более старых версий пакетов может пригодиться в тех случаях, когда обновление приводит к неправильной работе системы или отдельных программ. Если не следовать этому совету, может возникнуть ситуация, в которой пользователь будет вынужден использовать альтернативный источник устаревших пакетов, такой как [Arch Rollback Machine](/index.php/%D0%9E%D1%82%D0%BA%D0%B0%D1%82_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2#ARM "Откат пакетов").
*   Также есть возможность полностью очистить каталог кэша при помощи команды `pacman -Scc`, однако ее использование считается плохой практикой, так как, в дополнение к вышесказанному, в случае необходимости вы не сможете переустановить пакет непосредственно из директории кэша, и вам придется скачивать его заново. Настоятельно не рекомендуется использовать эту команду, за исключением случаев, когда у вас есть острая потребность в освобождении дискового пространства.

В связи с приведенными выше предостережениями рекомендуется использовать специальный скрипт для более гибкой установки того, какие и как много пакетов будут удалены из кэша:

*   Команда *paccache*, предоставляемая пакетом [pacman](https://www.archlinux.org/packages/?name=pacman), по умолчанию удаляет из кэша все версии каждого пакета, кроме трех недавно использовавшихся: `$ paccache -r` Однако, в этом случае *paccache* **не будет** проверять, установлен ли пакет на данный момент, оставляя удаленные пакеты в кэше. Для удаления из кэша всех версий удаленных пакетов придется запустить команду еще раз с другими опциями: `$ paccache -ruk0` Для просмотра всех опций смотрите `paccache -h`.
*   Альтернативный вариант — использование пакета [pkgcacheclean](https://aur.archlinux.org/packages/pkgcacheclean/) из [AUR](/index.php/Arch_User_Repository_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch User Repository (Русский)"): `# pkgcacheclean` 

### Дополнительные команды

Обновление системы и установка списка пакетов (за одну операцию):

```
# pacman -Syu *имя_пакета1* *имя_пакета2* ...

```

Скачать пакет, но не устанавливать его:

```
# pacman -Sw *имя_пакета*

```

Установить локальный пакет не из репозитория (например, для пакетов из [AUR](/index.php/Arch_User_Repository_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch User Repository (Русский)"):

```
# pacman -U /путь/к/пакету/имя_пакета-версия.pkg.tar.xz

```

**Совет:** Чтобы сохранить копию локального устанавливаемого пакета в кэше *pacman'*а, используйте:
```
# pacman -U file:///путь/к/пакету/имя_пакета-версия.pkg.tar.xz

```

Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman'a):

```
# pacman -U http://www.example.com/repo/example.pkg.tar.xz

```

### Частичные обновления не поддерживаются

Arch Linux — постоянно обновляемый дистрибутив, и это значит, что в репозиториях всегда находятся новые версии [библиотек](https://en.wikipedia.org/wiki/ru:%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5) "wikipedia:ru:Библиотека (программирование)"). Разработчики и доверенные пользователи собирают пакеты для репозиториев с использованием этих библиотек. Для пакетов, установленных локально (например, пакетов из [AUR](/index.php/Arch_User_Repository_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch User Repository (Русский)")), нужно самостоятельно решать вопрос с зависимостями согласно данным [soname](https://en.wikipedia.org/wiki/soname "wikipedia:soname").

Именно поэтому частичное обновление **не поддерживается**. Не используйте `pacman -Sy имя_пакета` или другие эквиваленты, такие как `pacman -Sy` и `pacman -S имя_пакета`. Всегда перед установкой пакетов синхронизируйте репозитории и обновляйте систему полностью. По той же самой причине нужно быть осторожными при использовании `IgnorePkg` и `IgnoreGroup`.

Если после частичного обновления оказалось, что двоичные файлы не могут найти нужных версий библиотек, **не "решайте" проблему простым созданием символических ссылок** (библиотеки **не имеют обратной совместимости**). Выполните `pacman -Syu`: как правило, этого будет достаточно для устранения проблемы, если она не затронула сам pacman.

Скрипт **checkupdates**, поставляемый с пакетом pacman, позволяет безопасно проверить установленные пакеты на наличие обновления без запуска собственно обновления при этом.

### Общие рекомендации

**Важно:** Будьте осторожны при использовании ключа `--force`, поскольку это может повлечь за собой серьезные проблемы. Настоятельно рекомендуется использовать эту опцию *только* в том случае, когда это указано в инструкциях по обновлению из новостей Arch.

*pacman* поставляется с рядом утилит, которые могут значительно упростить ваше взаимодействие с системой. Для просмотра опций каждую из них можно запускать с ключом `--help`. Для просмотра списка всех утилит выполните команду:

```
$ pacman -Ql pacman | awk -F"[/ ]" '/\/usr\/bin/ {print $5}'

```

## Решение проблем

### Обновления пакетов сломали мою систему

Arch Linux является дистрибутивом с плавающей системой релизов, позволяющей быстро получать наиболее свежие версии программ. Обновления для пакетов становятся доступными тогда, когда их посчитают достаточно стабильными для повседневного использования. Тем не менее, обновления иногда требуют вмешательства пользователя: может потребоваться обновление конфигурационных файлов, могут измениться дополнительные зависимости и т.д.

Запомните основное правило: не обновляйте систему "вслепую". Всегда внимательно изучайте список обновляемых пакетов. Обращайте внимание на обновление "критически важных" компонентов ([linux](https://www.archlinux.org/packages/?name=linux), [xorg-server](https://www.archlinux.org/packages/?name=xorg-server) и т.д.). Если такие пакеты есть, проверьте наличие новостей на [https://www.archlinux.org/](https://www.archlinux.org/) или [http://www.archlinux.org.ru/](http://www.archlinux.org.ru/) и просмотрите последние сообщения на форуме — возможно, кто-то уже столкнулся с проблемами при обновлении и сообщил об этом.

Если известно/ожидается, что после обновления могут возникнуть проблемы, сопроводители пакета добавляют в него предупреждение, которое *pacman* выведет при обновлении. Если вы упустили какую-то информацию, которую вывел *pacman*, то ее можно еще раз просмотреть в логе (`/var/log/pacman.log`).

Теперь, **если не было никаких предупреждений от *pacman*, отсутствуют соответствующие новости на [https://www.archlinux.org/](https://www.archlinux.org/) и [http://www.archlinux.org.ru/](http://www.archlinux.org.ru/) и нет сообщений относительно обновлений на форуме**, имеет смысл обратиться за помощью на форум, [IRC-канал](/index.php/IRC_channel "IRC channel"), или выполнить [Откат пакетов](/index.php/%D0%9E%D1%82%D0%BA%D0%B0%D1%82_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Откат пакетов") к работающей версии.

### Для пакета доступно обновление, но pacman сообщает, что система в актуальном состоянии

Зеркала pacman синхронизируются не мгновенно. Иногда может пройти более 24 часов, прежде чем обновления станут доступны вам. Будьте терпеливы или используйте другое зеркало. Страница [MirrorStatus](https://www.archlinux.org/mirrors/status/) поможет вам выбрать обновленное зеркало.

### Ошибка "Failed to commit transaction (conflicting files)"

Если вы видите следующее сообщение об ошибке: [[2]](https://bbs.archlinux.org/viewtopic.php?id=56373)

```
error: could not prepare transaction
error: failed to commit transaction (conflicting files)
*пакет*: */путь/к/файлу* exists in filesystem
Errors occurred, no packages were upgraded.

```

Почему так происходит? *pacman*, при обнаружении конфликтующих файлов, не будет их перезаписывать автоматически. Это не ошибка, так сделано специально.

Проблема решается тривиально. Сначала проверьте, не принадлежит ли файл другому пакету (`pacman -Qo */путь/к/файлу*`). Если принадлежит, создайте [отчет об ошибке](/index.php/Reporting_bug_guidelines_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Reporting bug guidelines (Русский)"). Если проблемный файл не нужен другим пакетам, переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.

Если программа была установлена вручную без использования *pacman* или его оболочек — например, при помощи команды `make install`, вам нужно будет удалить программу и все ее файлы, а затем выполнить установку при помощи *pacman*. Смотрите также раздел [pacman tips#Identify files not owned by any package](/index.php/Pacman_tips#Identify_files_not_owned_by_any_package "Pacman tips").

Информация о каждом установленном файле хранится в файле с метаданными пакета `/var/lib/pacman/local/*$пакет-$версия*/files`. При повреждении этого файла (он может быть пустым или отсутствовать) во время обновления пакета и будет получена ошибка `file exists in filesystem` ("файл существует в файловой системе"). Обычно такие ошибки возникают во время установки или обновления всего лишь одного пакета. Вместо ручного переименования или удаления конфликтующих файлов, принадлежащих данному пакету, вы можете запустить выборочную команду `pacman -S --force $пакет`, чтобы *pacman* принудительно перезаписал эти файлы.

**Важно:** Будьте осторожны при использовании ключа `--force` (например, `pacman -Syu --force`), поскольку это может повлечь за собой серьезные проблемы. Настоятельно рекомендуется использовать эту опцию только в том случае, когда это указано в инструкциях по обновлению из новостей Arch.

### Ошибка "Failed to commit transaction (invalid or corrupted package)"

Удалите все файлы *.part* (частично скачанные пакеты) из каталога кеша *pacman* `/var/cache/pacman/pkg` (часто это проявляется при использовании собственной команды `XferCommand` в файле `pacman.conf`).

### Ошибка "Failed to init transaction (unable to lock database)"

Когда *pacman* собирается внести изменения в базу данных пакетов, например, при установке пакета, он создает файл блокировки `/var/lib/pacman/db.lck`. Благодаря этому другой экземпляр *pacman* не сможет работать в то же самое время, что позволяет избежать повреждения базы.

Если работа *pacman* была прервана во время внесения изменений в базу, этот файл блокировки может остаться не удаленным. Если вы уверены, что на вашей машине не запущено других экземпляров *pacman*, удалите этот файл блокировки:

```
# rm /var/lib/pacman/db.lck

```

### Ошибка "Not found in sync db" при установке пакета

Для начала убедитесь, что пакет вообще существует (и вы нигде не опечатались!). Если пакет существует, то проблема может быть в том, что ваша база пакетов не синхронизирована с репозиториями или репозитории неправильно настроены. Для принудительного обновления списка пакетов и полного обновления всей системы попробуйте выполнить `pacman -Syyu`.

### Ошибка "Target not found" при установке пакета

Во-первых, удостоверьтесь, что пакет существует (и вы не допустили опечаток). Если это так, возможно, ваш список пакетов устарел или репозитории на вашей машине настроены неправильно. Для принудительного обновления списка пакетов и полного обновления всей системы попробуйте выполнить `pacman -Syyu`.

Также есть вероятность того, что в вашей системе не включен репозиторий, содержащий данный пакет — например, пакет находится в репозитории *multilib*, но *multilib* не включен в вашем файле *pacman.conf*.

### Один и тот же пакет обновляется повторно

Это может быть связано с дублированием записей в `/var/lib/pacman/local/`, например, имеется два экземпляра `linux`. `pacman -Qi` выведет правильную версию, а `pacman -Qu` покажет ее как устаревшую и, следовательно, требующую обновления.

Для решения проблемы удалите лишнюю запись из `/var/lib/pacman/local/`.

**Примечание:** *pacman* версии 3.4 в случае обнаружения повторяющихся записей должен вывести сообщение об ошибке, что делает эту заметку устаревшей.

### pacman падает при обновлении

Если при удалении пакетов *pacman* завершает свою работу с ошибкой "database write" ("записи в базу данных"), и после этого попытки переустановки или обновления пакетов завершаются неудачей, сделайте следующее:

1.  Загрузитесь, используя Arch live CD.
2.  Смонтируйте корневую файловую систему.
3.  Обновите базу данных pacman и всю систему с помощью `pacman -Syyu`.
4.  Переустановите поврежденный пакет через `pacman -r /путь/к/корневому_разделу -S имя_пакета`.

### Поиск пакета, содержащего требуемый файл

Установите [pkgfile](/index.php/Pkgfile_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pkgfile (Русский)"), использующий отдельную базу данных со всеми файлами и связанными с ними пакетами.

### pacman поврежден, и восстановить его не получается

Если *pacman* не работает и не получается его восстановить, скачайте вручную пакеты ([openssl](https://www.archlinux.org/packages/?name=openssl), [libarchive](https://www.archlinux.org/packages/?name=libarchive) и [pacman](https://www.archlinux.org/packages/?name=pacman)) и распакуйте их в корневой раздел. Двоичный файл *pacman'*a будет восстановлен вместе с конфигурационным файлом по умолчанию. Затем, для поддержания целостности базы данных пакетов, переустановите скачанные пакеты стандартными средствами *pacman*. Дополнительную информацию и пример (устарел) скрипта, автоматизирующего этот процесс, можно найти в [этом](https://bbs.archlinux.org/viewtopic.php?id=95007) сообщении форума.

### Ошибка "Unable to find root device" после перезагрузки

Вероятно, при обновлении ядра повредился образ initramfs (например, при использовании pacman с опцией `--force`). Для восстановления работоспособности есть два варианта, и первый из них — попробовать режим *Fallback*.

**Совет:** Если вы удалили этот пункт по каким-либо причинам, вы можете нажать клавишу `Tab` (при использовании Syslinux) или `e` (при использовании GRUB), когда на экране появится меню загрузчика, переименовать образ в `initramfs-linux-fallback.img` и нажать `Enter` или `b` (в зависимости от используемого вами загрузчика), чтобы выполнить загрузку с новыми параметрами.

Когда система загрузится, выполните команду пересборки образа initramfs либо из консоли, либо из терминала (для стандартного ядра [linux](https://www.archlinux.org/packages/?name=linux)):

```
# mkinitcpio -p linux

```

Если способ, описанный выше, не сработает, загрузитесь в live-окружение установочного образа Arch и выполните команды:

**Примечание:** Если у вас нет текущего релиза, или есть только какой-либо другой "live"-дистрибутив Linux, вы можете выполнить [chroot](/index.php/Change_root_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Change root (Русский)"), используя старый способ. Очевидно, при этом вам придется напечатать больше, чем просто `arch-chroot` для запуска соответствующего скрипта.

```
# mount /dev/sd*xY* /mnt         # Ваш корневой раздел
# mount /dev/sd*xZ* /mnt/boot    # Если /boot вынесен на отдельный раздел
# arch-chroot /mnt
# pacman -Syu mkinitcpio systemd linux

```

**Примечание:** Если pacman выдает ошибку `Could not resolve host`, пожалуйста, [проверьте ваше интернет-соединение](/index.php/Network_configuration_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9F.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D0.BA.D0.B0_.D0.BF.D0.BE.D0.B4.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.BD.D0.B8.D1.8F "Network configuration (Русский)").

Переустановка ядра (пакета [linux](https://www.archlinux.org/packages/?name=linux)) автоматически пересоздаст образ initramfs при помощи `mkinitcpio -p linux`. Нет необходимости дополнительно вводить эту команду.

После всего этого рекомендуется выполнить `exit`, `umount /mnt/{boot,}` и `reboot`.

**Примечание:** Если вы не можете войти в окружение arch-chroot или chroot, но нуждаетесь в переустановке пакетов, можете использовать команду `pacman -r /mnt -Syu foo bar`, чтобы указать *pacman'*у ваш корневой раздел.

### Signature from "User <email@gmail.com>" is unknown trust, installation failed

Следуйте инструкциям из раздела [pacman-key#Resetting all the keys](/index.php/Pacman-key#Resetting_all_the_keys "Pacman-key"). Также сперва вы можете попробовать вручную обновить пакет [archlinux-keyring](https://www.archlinux.org/packages/?name=archlinux-keyring), например, так: `pacman -S archlinux-keyring`

### Signature from "User <email@archlinux.org>" is invalid, installation failed

Это происходит, когда системное время установлено неверно и подписи ключей кажутся устаревшими:

```
error: *пакет*: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occured, no packages were upgraded.

```
Установите [время](/index.php/Time_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Time (Русский)") (например, командой `ntpd -qg` от имени root) и выполните `hwclock -w` от имени root перед тем, как пытаться вновь установить/обновить пакет.

### Ошибка "Warning: current locale is invalid; using default "C" locale"

Как сказано в тексте ошибки, локаль настроена неправильно. Смотрите статью [Locale (Русский)](/index.php/Locale_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Locale (Русский)").

### рacman не использует настройки прокси

Удостоверьтесь, что соответствующие переменные окружения (`$http_proxy`, `$ftp_proxy` и т.д.) заданы верно. Если вы используете *pacman* вместе с [sudo](/index.php/Sudo_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Sudo (Русский)"), необходимо настроить sudo на [передачу переменных окружения среды в pacman](/index.php/Sudo_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9F.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D1.8F "Sudo (Русский)").

### Как я могу переустановить все пакеты, сохраняя при этом информацию о том, какие пакеты были явно установлены, а какие установлены в качестве зависимостей?

Чтобы переустановить все пакеты из официальных репозиториев, выполните `pacman -S $(pacman -Qnq)` (опция `-S` сохраняет причину установки по умолчанию).

После этого необходимо переустановить все пакеты из неизвестных источников, список которых можно получить командой `pacman -Qmq`.

### Ошибка "Cannot open shared object file"

Скорее всего, это означает, что при выполнении предыдущей операции *pacman* удалил или повредил разделяемые библиотеки, необходимые для него самого.

Чтобы выйти из этой ситуации, нужно вручную распаковать необходимые библиотеки в вашу файловую систему. Сперва определите, в каком пакете содержится требуемая библиотека, а затем найдите этот пакет в кэше *pacman'*a (`/var/cache/pacman/pkg/`). Распакуйте разделяемую библиотеку в файловую систему. Это позволит вам запустить *pacman*.

Теперь необходимо [переустановить](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BE.D0.BF.D1.80.D0.B5.D0.B4.D0.B5.D0.BB.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) испорченный пакет. При этом обязательно используйте ключ `--force`, поскольку вы лишь распаковали системные файлы, но *pacman* об этом не знает. *pacman* корректно заменит ваш файл разделяемой библиотеки на тот, что имеется в пакете.

Вот и все. Обновите оставшуюся часть системы.

### Проблемы с загрузкой пакетов

Были сообщения о некоторых сетевых проблемах, которые приводят к невозможности обновления/синхронизации. [[3]](https://bbs.archlinux.org/viewtopic.php?id=68944) [[4]](https://bbs.archlinux.org/viewtopic.php?id=65728) При обычной установке Arch Linux эти проблемы не появляются, так как стандартный загрузчик файлов при этом заменяется другим (смотрите [Improve pacman performance (Русский)](/index.php/Improve_pacman_performance_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Improve pacman performance (Русский)")). При установке Arch Linux в [VirtualBox](/index.php/VirtualBox "VirtualBox") эта проблема также появляется, когда вы используете опцию виртуальной машины *Host interface* вместо *NAT*.

## Смотрите также

*   [Страница руководства (man) libalpm(3)](https://www.archlinux.org/pacman/libalpm.3.html)
*   [Страница руководства (man) pacman(8)](https://www.archlinux.org/pacman/pacman.8.html)
*   [Страница руководства (man) pacman.conf(5)](https://www.archlinux.org/pacman/pacman.conf.5.html)
*   [Страница руководства (man) repo-add(8)](https://www.archlinux.org/pacman/repo-add.8.html)